package com.crm.dao.mapper.customMapper.customerManagerCustomMapper;

import com.crm.model.entity.customerManager.CustomerOrderBackMoney;
import com.crm.model.qo.customerManager.OrderBackMoneyQO;
import com.crm.model.vo.customerManager.CustomerOrderBackMoneyVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 退款
 * @ Author ：bj
 * @ Date   ：2021/7/27 16:40
 */
public interface CustomerOrderBackMoneyCustomMapper {

    /**
     * 管理员-退款列表
     * @Author bj
     * @Date  2021/7/27 9:27
     */
    List<CustomerOrderBackMoneyVO> customerOrderBackMoneyList(@Param("orderBackMoneyQO") OrderBackMoneyQO orderBackMoneyQO);

    /**
     * 普通用户-退款列表
     * @Author bj
     * @Date  2021/7/27 9:27
     */
    List<CustomerOrderBackMoneyVO> userCustomerOrderBackMoneyList(@Param("orderBackMoneyQO") OrderBackMoneyQO orderBackMoneyQO);

    /**
     * 订单详情-退款信息
     * @Author bj
     * @Date  2021/7/27 9:27
     */
    List<CustomerOrderBackMoneyVO> orderBackMoneyList(String productOrderId);

    /**
     * 计算退款金额
     * @param companyId
     * @param dateUnit
     * @return
     */
    BigDecimal selectBackMoneyCount(@Param("companyId") String companyId,@Param("dateUnit") Integer dateUnit);

    /**
     * 查询订单已完成的附加费用
     * @param productName 产品名称
     * @param orderId 订单id
     * @return
     */
    CustomerOrderBackMoney selectBackMoneyFjfy(@Param("productName") String productName,@Param("orderId") String orderId);

    /**
     * 通过产品号和退款状态查询退款信息
     * @param finishOrderProductNum 产品号
     * @return
     */
    List<CustomerOrderBackMoney> selectCustomerOrderBackMoneyByCph(@Param("finishOrderProductNum") String finishOrderProductNum,@Param("bs") Integer bs);

    /**
     * 总部财务退款列表
     * @param orderBackMoneyQO 退款信息
     * @return
     */
    List<CustomerOrderBackMoneyVO> superCustomerOrderBackMoneyList(@Param("orderBackMoneyQO") OrderBackMoneyQO orderBackMoneyQO);

    /**
     * 补全之前退款的回款记录表
     */
    List<CustomerOrderBackMoney> repairReturnMoney();

    /**
     * 退款未审核
     * @return
     */
    Integer getcustomerProductOrderNum();
}
